home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d6
/
glazer.arc
/
CREDITPU.BAS
< prev
next >
Wrap
BASIC Source File
|
1988-10-07
|
2KB
|
56 lines
100 'Credit Purchase ("CREDITPURCH")
110 CLS
120 COLOR 0,15 : PRINT "Credit Purchase" : COLOR 15,0
130 DEFDBL A-Z
140 MONEYFMT$ = "$$##,###,###.##"
150 'Define rounding function
160 DEF FNR( V) = SGN( V) * INT (ABS (V) * 100 + .5) / 100
170 PRINT: PRINT
180 PRINT "Do not enter dollar signs or commas"
190 PRINT
200 INPUT "Purchase price: ", BALANCE
210 INPUT "Annual interest charge (in percent): ", CR
220 INPUT "Monthly payment (as percentage of balance): ", RPMT
230 INPUT "Minimum monthly payment: ", MINPMT
240 INPUT "Annual interest rate on savings (in percent): ", AR
250 PRINT "Enter date of first payment"
260 INPUT " Month (1-12): ", SMONTH
270 INPUT " Year: ", SYEAR
280 ' Initialize values
290 PR = (1 + AR / 100) ^ (1/12) - 1
300 TOTALPAYMENTS = 0
310 TOTALINTEREST = 0
320 PV = 0
330 M = 0
340 MONTHNUM = SYEAR * 12 + SMONTH
350 PRINT
360 PRINT "Press space bar to continue"
370 ' Calculate monthly balances
380 WHILE BALANCE > 0
390 K$ = INKEY$ : IF K$ = "" THEN GOTO 390
400 M = M + 1
410 YEAR = (MONTHNUM - 1) \ 12
420 MONTH = MONTHNUM - YEAR * 12
430 MONTHNUM = MONTHNUM + 1
440 'Calculate month's payments
450 INTERESTDUE = FNR (BALANCE * CR / 1200)
460 PMT = INT (BALANCE * RPMT + .5) / 100
470 IF PMT < MINPMT THEN PMT = MINPMT
480 IF PMT > BALANCE + INTERESTDUE THEN PMT = BALANCE + INTERESTDUE
490 BALANCE = FNR (BALANCE - PMT + INTERESTDUE)
500 TOTALPAYMENTS = TOTALPAYMENTS + PMT
510 PV = PV + PMT * (1 + PR) ^ -M
520 TOTALINTEREST = TOTALINTEREST + INTERESTDUE
530 'Print results
540 PRINT:PRINT
550 PRINT "Payment number: "; M
560 PRINT "Date: "; MONTH;"/"; YEAR
570 PRINT "New balance: "; TAB(30); USING MONEYFMT$; BALANCE
580 PRINT "Payment: "; TAB(30); USING MONEYFMT$; PMT
590 PRINT "Finance charge: "; TAB(30); USING MONEYFMT$; INTERESTDUE
600 PRINT "Cumulative payments: "; TAB(30); USING MONEYFMT$; TOTALPAYMENTS
610 PRINT "Cumulative finance charges: "; TAB(30); USING MONEYFMT$; TOTALINTEREST
620 PRINT "Present value of payments: "; TAB(30); USING MONEYFMT$; PV
640 WEND
650 END